/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package tk.eigh.ksvg.component;

import ksvg.core.SVGComponentBase;
import org.apache.myfaces.buildtools.maven2.plugin.builder.annotation.JSFComponent;
import org.apache.myfaces.buildtools.maven2.plugin.builder.annotation.JSFProperty;
import tk.eigh.ksvg.types.SVGCoordinate;
import tk.eigh.ksvg.types.SVGLength;

/**
 *
 * @author nt
 */
@JSFComponent(type = "tk.eigh.svg.SVGFilter",
family = "core.SVGFilter",
clazz = "ksvg.core.SVGFilter",
tagClass = "ksvg.tags.core.SVGFilterTag",
defaultRendererType = "SVGSVGFilterRenderer",
template = true)
public abstract class _SVGFilter extends SVGComponentBase implements _StyleAble {

    /**
     * x = "&lt;coordinate&gt;"<br/>The minimum x coordinate for the subregion
     * which restricts calculation and rendering of the given filter primitive.
     * See filter primitive subregion. Animatable: yes.
     */
    @JSFProperty
    public abstract SVGCoordinate getX();

    /**
     * y = "&lt;coordinate&gt;"<br/>The minimum y coordinate for the subregion
     * which restricts calculation and rendering of the given filter primitive.
     * See filter primitive subregion.<br/> Animatable: yes.
     */
    @JSFProperty
    public abstract SVGCoordinate getY();

    /**
     * width = "&lt;length&gt;"<br/> The width of the subregion which restricts
     * calculation and rendering of the given filter primitive. See filter
     * primitive subregion. A negative value is an error. A value of zero
     * disables the effect of the given filter primitive (i.e., the result is a
     * transparent black image).<br/> Animatable: yes.
     */
    @JSFProperty
    public abstract SVGLength getWidth();

    /**
     * height = "&lt;length&gt;"<br/> The height of the subregion which
     * restricts calculation and rendering of the given filter primitive. See
     * filter primitive subregion. A negative value is an error. A value of zero
     * disables the effect of the given filter primitive (i.e., the result is a
     * transparent black image).<br/> Animatable: yes.
     */
    @JSFProperty
    public abstract SVGLength getHeight();

    /**
     * result = "&lt;filter-primitive-reference&gt;"<br/> Assigned name for this
     * filter primitive. If supplied, then graphics that result from processing
     * this filter primitive can be referenced by an ‘in’ attribute on a
     * subsequent filter primitive within the same ‘filter’ element. If no value
     * is provided, the output will only be available for re-use as the implicit
     * input into the next filter primitive if that filter primitive provides no
     * value for its ‘in’ attribute. Note that a
     * &lt;filter-primitive-reference&gt; is not an XML ID; instead, a
     * &lt;filter-primitive-reference&gt; is only meaningful within a given
     * ‘filter’ element and thus have only local scope. It is legal for the same
     * &lt;filter-primitive-reference&gt; to appear multiple times within the
     * same ‘filter’ element. When referenced, the
     * &lt;filter-primitive-reference&gt; will use the closest preceding filter
     * primitive with the given result.<br/> Animatable: yes.
     */
    @JSFProperty
    public abstract String getResult();

    /**
     * in = "<em><a
     * href="http://www.w3.org/TR/SVG/filters.html#SourceGraphic">SourceGraphic</a>
     * | <a
     * href="http://www.w3.org/TR/SVG/filters.html#SourceAlpha">SourceAlpha</a>
     * | <a
     * href="http://www.w3.org/TR/SVG/filters.html#BackgroundImage">BackgroundImage</a>
     * | <a
     * href="http://www.w3.org/TR/SVG/filters.html#BackgroundAlpha">BackgroundAlpha</a>
     * | <a href="http://www.w3.org/TR/SVG/filters.html#FillPaint">FillPaint</a>
     * | <a
     * href="http://www.w3.org/TR/SVG/filters.html#StrokePaint">StrokePaint</a>
     * | &lt;filter-primitive-reference&gt;</em>"<br/> Identifies input for the
     * given filter primitive. The value can be either one of six keywords or
     * can be a string which matches a previous <a
     * href="http://www.w3.org/TR/SVG/filters.html#FilterPrimitiveResultAttribute">‘result’</a>
     * attribute value within the same <a
     * href="http://www.w3.org/TR/SVG/filters.html#FilterElement">‘filter’</a>
     * element. If no value is provided and this is the first filter primitive,
     * then this filter primitive will use <a
     * href="http://www.w3.org/TR/SVG/filters.html#SourceGraphic">SourceGraphic</a>
     * as its input. If no value is provided and this is a subsequent filter
     * primitive, then this filter primitive will use the result from the
     * previous filter primitive as its input.<br/> <br/> If the value for <a
     * href="http://www.w3.org/TR/SVG/filters.html#FilterPrimitiveResultAttribute">‘result’</a>
     * appears multiple times within a given <a
     * href="http://www.w3.org/TR/SVG/filters.html#FilterElement">‘filter’</a>
     * element, then a reference to that result will use the closest preceding
     * filter primitive with the given value for attribute <a
     * href="http://www.w3.org/TR/SVG/filters.html#FilterPrimitiveResultAttribute">‘result’</a>.
     * Forward references to results are <a
     * href="http://www.w3.org/TR/SVG/implnote.html#ErrorProcessing">an
     * error</a>.<br/> <br/> Definitions for the six keywords:
     * <dl><dt>SourceGraphic</dt><dd>This keyword represents the <a
     * href="http://www.w3.org/TR/SVG/intro.html#TermGraphicsElement">graphics
     * elements</a> that were the original input into the <a
     * href="http://www.w3.org/TR/SVG/filters.html#FilterElement">‘filter’</a>
     * element. For raster effects filter primitives, the <a
     * href="http://www.w3.org/TR/SVG/intro.html#TermGraphicsElement">graphics
     * elements</a> will be rasterized into an initially clear RGBA raster in
     * image space. Pixels left untouched by the original graphic will be left
     * clear. The image is specified to be rendered in linear RGBA pixels. The
     * alpha channel of this image captures any anti-aliasing specified by SVG.
     * (Since the raster is linear, the alpha channel of this image will
     * represent the exact percent coverage of each pixel.)</dd><dt
     * >SourceAlpha</dt><dd>This keyword represents the <a
     * href="http://www.w3.org/TR/SVG/intro.html#TermGraphicsElement">graphics
     * elements</a> that were the original input into the <a
     * href="http://www.w3.org/TR/SVG/filters.html#FilterElement">‘filter’</a>
     * element. SourceAlpha has all of the same rules as <a
     * href="http://www.w3.org/TR/SVG/filters.html#SourceGraphic">SourceGraphic</a>
     * except that only the alpha channel is used. The input image is an RGBA
     * image consisting of implicitly black color values for the RGB channels,
     * but whose alpha channel is the same as <a
     * href="http://www.w3.org/TR/SVG/filters.html#SourceGraphic">SourceGraphic</a>.
     * If this option is used, then some implementations might need to rasterize
     * the <a
     * href="http://www.w3.org/TR/SVG/intro.html#TermGraphicsElement">graphics
     * elements</a> in order to extract the alpha
     * channel.</dd><dt>BackgroundImage</dt><dd>This keyword represents an image
     * snapshot of the canvas under the <a
     * href="http://www.w3.org/TR/SVG/filters.html#FilterEffectsRegion">filter
     * region</a> at the time that the <a
     * href="http://www.w3.org/TR/SVG/filters.html#FilterElement">‘filter’</a>
     * element was invoked. See <a
     * href="http://www.w3.org/TR/SVG/#AccessingBackgroundImage">Accessing the
     * background image</a>.</dd><dt>BackgroundAlpha</dt><dd>Same as <a
     * href="http://www.w3.org/TR/SVG/#BackgroundImage">BackgroundImage</a>
     * except only the alpha channel is used. See <a
     * href="http://www.w3.org/TR/SVG/filters.html#SourceAlpha">SourceAlpha</a>
     * and <a
     * href="http://www.w3.org/TR/SVG/#AccessingBackgroundImage">Accessing the
     * background image</a>.</dd><dt>FillPaint</dt><dd>This keyword represents
     * the value of the <a
     * href="http://www.w3.org/TR/SVG/painting.html#FillProperty">‘fill’</a>
     * property on the target element for the filter effect. The FillPaint image
     * has conceptually infinite extent. Frequently this image is opaque
     * everywhere, but it might not be if the "paint" itself has alpha, as in
     * the case of a gradient or pattern which itself includes transparent or
     * semi-transparent parts.</dd><dt>StrokePaint</dt><dd>This keyword
     * represents the value of the <a
     * href="http://www.w3.org/TR/SVG/painting.html#StrokeProperty">‘stroke’</a>
     * property on the target element for the filter effect. The StrokePaint
     * image has conceptually infinite extent. Frequently this image is opaque
     * everywhere, but it might not be if the "paint" itself has alpha, as in
     * the case of a gradient or pattern which itself includes transparent or
     * semi-transparent parts.</dd></dl> <p>The <a
     * href="http://www.w3.org/TR/SVG/filters.html#FilterPrimitiveInAttribute">‘in’</a>
     * attribute is available on all filter primitive elements that require an
     * input.</p> <a
     * href="http://www.w3.org/TR/SVG/animate.html#Animatable">Animatable</a>:
     * yes.
     */
    @JSFProperty
    public abstract String getIn();
}